====== Routage Dynamique sous Linux ======


Pour avoir les notions de routage, je vous conseille de lire cette page [[Routage]], elle vous permettra d'avoir une machine routeur
pour accéder aux différents sous réseaux.

Le but de cette documentation est d'éviter aux différents utilisateurs des sous-réseaux de mettre la table de routage à jour à la main.
Quand le réseau est fixe, ce n'est dérangeant de le faire une fois, mais si on ajoute des sous-réseaux assez souvent c'est un peu plus embêtant. Donc nous allons utiliser le soft [[http://bird.network.cz/|Bird]] (très peu de doc sur le net) pour faire mettre à jour automatiquement la table de routage
de toutes les machines.

 
Explication avec un schéma: 




===== Pré-requis =====

Pour faire un routeur dynamique, il vous faut :
   * Une machine routeur (voir [[Routage]])
   * Des machines dans les différents sous-réseaux


===== Installer Bird =====

Il faut installer Bird sur la machine routeur et sur tous les postes qui veulent bénificier de la mise en à jour
de la table de routage, [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://bird|bird]]**.


===== Configuration Bird ===== 

<note important>Il faut faire une configuration sur la machine routeur (serveur bird), puis une configuration déférente sur toutes les autres machines (client bird).</note>

=== Coté machine routeur ===

Editer /etc/bird.conf

<code>
protocol kernel {
persist;                # Don’t remove routes on BIRD shutdown
scan time 20;           # Scan kernel routing table every 20 seconds
export all;             # Default is export none

}

protocol device {
scan time 10;           # Scan interfaces every 10 seconds
}

protocol direct {
export all;
}

protocol rip {
export all;
import all;
port 1520;
authentication plaintext;
password “text”;
honor always;
interface “eth*”{ mode broadcast; };
}
</code>



=== Coté client ===

<note important>Je veux récupérer toutes les routes sauf la route pour mon réseau local (192.168.160.0), car elle passe par un autre routeur.</note>


Editer /etc/bird.conf

<code>
protocol kernel{
learn;
import all;
export all;
}

protocol device{
}

protocol rip {
import filter {
if net ~ [ 192.168.160.0/24 ] then {   # Only remote networks
reject;
}
else accept;
};
#    export all;
port 1520;
authentication plaintext;
password “text”;
honor neighbor;
interface “eth*”{mode broadcast;};
}
</code>